﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using Emerson.Storage.Entities;

namespace Emerson.Storage.Service.Interface
{
    /// <summary>
    /// WorkstationService is for the CRUD operation for workstation and workstation group
    /// </summary>
    [ServiceContract]
    public interface IWorkstationService
    {
        /// <summary>
        /// Returns the root of the workstation with all workstations filled
        /// </summary>
        [OperationContract]
        WorkstationRoot GetWorkstationRoot();

        [OperationContract]
        Workstation GetWorkstation(int workstationId);

        [OperationContract]
        void AddWorkstation(int groupId, Workstation newWorkstation);

        [OperationContract]
        void RemoveWorkstation(int workstationId);

        [OperationContract]
        void AddGroup(Group newGroup);

        [OperationContract]
        void DeleteGroup(int groupId);

        [OperationContract]
        Workstation FindWorkstation(string address);

        [OperationContract]
        void DeleteWorkstation(int workstationId);

        [OperationContract]
        Battery GetBattery(int id);

        [OperationContract]
        void DeleteBattery(int deviceId);

        [OperationContract]
        Group GetGroup(int id);
    }
}
